/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package analiseSintatica.Regras.Expressoes;

import AnaliseLexicaFinal.EstruturaDeDados.LinkToken;
import analiseSemantica.Tipos.TiposSemanticos;
import analiseSintatica.ErroSintaticoException;
import analiseSintatica.Regras.Regra;
import java.util.LinkedList;

/**
 *
 * @author linton
 * @author amferraz
 * @author nathy
 */
public class RegraOpIgualdade extends Regra {

    protected static Regra instancia;
    protected String estrutura = "<op_igualdade> ::=  '==' |  '!='";

    /**
     * Construtor privado necessario ao singleton
     */
    private RegraOpIgualdade() {
    }

    /**
     * Retorna a unica instancia dessa classe.
     * @return
     */
    public static RegraOpIgualdade getInstance() {
        if (instancia == null) {
            instancia = new RegraOpIgualdade();
        }
        return (RegraOpIgualdade) instancia;
    }

    @Override
    public TiposSemanticos analisar(LinkedList<LinkToken> listaTokens) throws ErroSintaticoException {
       listaTokens.removeFirst().getLexema();
       return null;
    }

    @Override
    protected void setPrimeiro() {
        this.primeiro.add("==");
        this.primeiro.add("!=");
    }
}
